home *** CD-ROM | disk | FTP | other *** search
/ Disc to the Future 2 / Disc to the Future Part II Programmer's Reference (Wayzata Technology)(6013)(1992).bin / MAC / THINKC / 3_0 / DOUBLEDE / EVENTS.C < prev    next >
C/C++ Source or Header  |  1988-07-28  |  3KB  |  142 lines

  1. #include "shell.h"
  2.  
  3. /*====================================================================
  4.  
  5.     handlemousedown()
  6.     
  7.     determine which window (or area) was clicked in with FindWindow,
  8.     and dispatch to handling routines for the various possibilities.
  9.     
  10. ====================================================================*/    
  11. handlemousedown()
  12. {
  13.     WindowPtr        whichWindow;
  14.     int                Part;
  15.  
  16.     switch (Part = FindWindow(event.where,&whichWindow)){
  17.  
  18.         case inSysWindow:    SystemClick(&event,whichWindow);
  19.                             break;
  20.  
  21.         case inMenuBar:        domenu(MenuSelect(event.where));
  22.                             break;
  23.  
  24.         case inDrag:        dodrag(event.where,whichWindow);
  25.                             break;
  26.  
  27.         case inContent:        docontent(event.where,whichWindow);
  28.                             break;
  29.  
  30.         case inGrow:        dogrow(event.where,whichWindow);
  31.                             break;
  32.  
  33.         case inGoAway:        dogoaway(&event.where,whichWindow);
  34.                             break;
  35.  
  36.         case inZoomIn:
  37.         case inZoomOut:        if (TrackBox(whichWindow,event.where,Part)){
  38.                                 HideWindow(whichWindow);
  39.                                 ZoomWindow(whichWindow, Part, TRUE);
  40.                                 if((w_index=ourwindow(whichWindow)) >= 0)
  41.                                     posbutton(w_index);
  42.                                 ShowWindow(whichWindow);
  43.                             }
  44.                             break;
  45.  
  46.         default:            break;
  47.         }
  48. }
  49.  
  50. /*====================================================================
  51.  
  52.     handlekeydown()
  53.     
  54.     extract char pressed from keyboard from event.message field.
  55.     if the command key was down, dispatch to menu selection routine
  56.     in case the user was doing a menu command-key-equivalent
  57.     
  58.     otherwise, ch contains the char typed from the keyboard, do
  59.     whatever is appropriate with it.
  60.     
  61. ====================================================================*/    
  62. handlekeydown()
  63. {
  64.     char    ch;
  65.     int        chCode;
  66.     long    menuChoice,newTime;
  67.     Rect    charRect;
  68.     Str255    aStr;
  69.  
  70.     ch = (char)event.message & charCodeMask;
  71.  
  72.     if ((event.modifiers & cmdKey) !=0)
  73.     
  74.         domenu(MenuKey(ch));
  75.         
  76.     else{
  77.     
  78.         /*
  79.             do application dependent routine here to handle a
  80.             key pressed on the keyboard
  81.         */
  82.         
  83.     }
  84.  
  85. }
  86.  
  87. /*====================================================================
  88.  
  89.     handleanevent()
  90.     
  91.     event dispatcher, based on the type of event in the Event Record
  92.     
  93. ====================================================================*/    
  94. handleanevent()
  95. {
  96.     GrafPtr            tempPort;
  97.     long            newTime;
  98.  
  99.     switch (event.what){
  100.         case mouseDown:        handlemousedown();
  101.                             break;
  102.  
  103.         case keyDown:
  104.         case autoKey:        handlekeydown();
  105.                             break;
  106.  
  107.         case activateEvt:    handleactivate();
  108.                             changedscrap();
  109.                             break;
  110.  
  111.         case updateEvt:        handleupdate((GrafPtr)event.message);
  112.                             break;
  113.  
  114.         case app4Evt:        dobkgnd();
  115.                             break;
  116.  
  117.         default:            break;
  118.     }
  119. }
  120.  
  121. /*====================================================================
  122.  
  123.     noimplementation()
  124.     
  125.     show dialog indicating that whatever menu item was selected is
  126.     not yet available.
  127.     
  128. ====================================================================*/    
  129. noimplementation()
  130. {
  131.     AlertTHndl    theAlert;
  132.     int            unneeded;
  133.  
  134.     theAlert = (AlertTHndl)GetResource('ALRT',512);
  135.     centerrect(&(**theAlert).boundsRect,&screenBits.bounds);
  136.     HNoPurge(theAlert);
  137.  
  138.     unneeded = NoteAlert(512,0L);
  139.  
  140.     HPurge(theAlert);
  141. }
  142.